package day09;

import java.util.Arrays;

/**
 * 输入一个正整数数组，把数组里所有数字拼接起来排成一个数，
 * 打印能拼接出的所有数字中最小的一个。
 * 例如输入数组{3，32，321}，
 * 则打印出这三个数字能排成的最小数字为321323。
 * <p>
 * Created by Administrator on 2017/1/8.
 */
public class Test03 {
    public static void main(String[] args) {
        int[] arr = new int[]{3, 5, 1, 4, 2};
        System.out.println(PrintMinNumber(arr));
    }

    public static String PrintMinNumber(int[] numbers) {
        for (int i = 0; i < numbers.length - 1; i++) {
            for (int j = 0; j < numbers.length - i - 1; j++) {
                if (compareNumber(numbers[j], numbers[j + 1])) {
                    int temp = numbers[j];
                    numbers[j] = numbers[j + 1];
                    numbers[j + 1] = temp;
                }
            }
        }
        String line = "";
        for (int i = 0; i < numbers.length; i++) {
            line += numbers[i];
        }
        System.out.println(line);
        return line;
    }

    private static boolean compareNumber(int number, int number1) {
        String str1 = number + "" + number1;
        String str2 = number1 + "" + number;
//        for (int i = 0; i < str1.length(); i++) {
//            if (str1.charAt(i) > str2.charAt(i)) {
//                return true;
//            } else if (str1.charAt(i) < str2.charAt(i)) {
//                return false;
//            }
//        }

        if (str1.compareTo(str2) > 0) {
            return true;
        } else {
            return false;
        }
    }

}
